home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / databa1a / cstopwat.cls next >
Text File  |  1999-02-21  |  3KB  |  91 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "CStopWatch"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = False
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. ' *********************************************************************
  11. '  Copyright ⌐1995-99, Karl E. Peterson, All Rights Reserved.
  12. '  http://www.mvps.org/vb
  13. ' *********************************************************************
  14. '  You are free to use this code within your own applications, but you
  15. '  are expressly forbidden from selling or otherwise distributing this
  16. '  source code without prior written consent.
  17. ' *********************************************************************
  18. Option Explicit
  19. '
  20. ' Win32 API declarations.
  21. '
  22. Private Declare Function timeGetTime Lib "winmm.dll" () As Long
  23. Private Declare Function timeGetDevCaps Lib "winmm.dll" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long
  24. '
  25. ' API Structure definitions.
  26. '
  27. Private Type TIMECAPS
  28.    wPeriodMin As Long
  29.    wPeriodMax As Long
  30. End Type
  31. '
  32. ' Set aside storage for private member variables.
  33. '
  34. Private m_StartTime As Long
  35. Private m_PeriodMin As Long
  36. Private m_PeriodMax As Long
  37.  
  38. ' ********************************************
  39. '  Initialize
  40. ' ********************************************
  41. Private Sub Class_Initialize()
  42.    '
  43.    ' Retrieve system timer resolution.
  44.    '
  45.    Dim tc As TIMECAPS
  46.    Call timeGetDevCaps(tc, Len(tc))
  47.    m_PeriodMin = tc.wPeriodMin
  48.    m_PeriodMax = tc.wPeriodMax
  49.    '
  50.    ' Initialize starting time.
  51.    '
  52.    m_StartTime = timeGetTime()
  53. End Sub
  54.  
  55. ' ********************************************
  56. '  Public Properties
  57. ' ********************************************
  58. Public Property Get Elapsed() As Long
  59.    '
  60.    ' Read-Only: return elapsed time in milliseconds
  61.    '            since stopwatch was reset.
  62.    '
  63.    Elapsed = timeGetTime() - m_StartTime
  64. End Property
  65.  
  66. Public Property Get MinimumResolution() As Long
  67.    '
  68.    ' Read-Only: return minimum number of milliseconds
  69.    '            timer is capable of resolving.
  70.    '
  71.    MinimumResolution = m_PeriodMin
  72. End Property
  73.  
  74. Public Property Get MaximumResolution() As Long
  75.    '
  76.    ' Read-Only: return maximum number of milliseconds
  77.    '            timer is capable of resolving.
  78.    '
  79.    MaximumResolution = m_PeriodMax
  80. End Property
  81.  
  82. ' ********************************************
  83. '  Public Methods
  84. ' ********************************************
  85. Public Sub Reset()
  86.    '
  87.    ' Reinitialize starting time.
  88.    '
  89.    m_StartTime = timeGetTime()
  90. End Sub
  91.